package com.treasure.mall.zbq.common.ienum.user;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.treasure.mall.zbq.common.ienum.base.CodeDescCommonEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 
 * +---------------------------------------------------------
 * * @package: com.treasure.mall.zbq.common.ienum.user
 * * @author: guomw (guomwchen@foxmail.com)
 * * @date: 2020/6/11 14:48
 * * @since: V1.0.0
 * +---------------------------------------------------------
 * 注意：本内容仅限于内部传阅，禁止外泄以及用于其他的商业目的
 * Copyright 2019-2022 com.treasure.mall.zbq.common.ienum.user Inc. All rights reserved.
 */
public interface UserEnums {

    /**
     * 用户类型
     */
    @Getter
    @AllArgsConstructor
    enum UserType implements CodeDescCommonEnum {
        /**
         * 普通用户和专属粉丝
         */
        GENERAL(0, "普通用户"),
        /**
         * 新秀和达人
         */
        MEMBER(1, "会员用户");
        private Integer code;
        private String desc;
    }

    @Getter
    @AllArgsConstructor
    @JsonFormat(shape = JsonFormat.Shape.OBJECT)
    enum UserLevel implements CodeDescCommonEnum {
        GENERAL(0, "普通粉丝"),
        /**
         * 普通粉丝有过成功交易订单，则立即升级专属粉丝
         */
        SINGLE_FAN(1, "专属粉丝"),
        /**
         * 支付288 后就升级为新秀
         */
        LEVEL_XIN_XIU(2, "新秀"),
        /**
         * 团队达到100个新秀和1000个专属粉丝就升级为达人
         */
        LEVEL_DA_REN(3, "达人");
        private Integer code;
        private String desc;
    }

    /**
     * 用户余额流水
     */
    @Getter
    @AllArgsConstructor
    enum MoneyFlowType implements CodeDescCommonEnum {
        BALANCE(0, "用户余额"),
        BALANCE_IN_FUTURE(1, "用户待入账余额"),
        MERCHANT_BALANCE(2, "货款余额"),
        MERCHANT_BALANCE_IN_FUTURE(3, "货款待入账余额");
        private Integer code;
        private String desc;
    }
}
